#include<iostream>
#include<signal.h>
#include<unistd.h>
using namespace std;

void hander(int sig)
{
    cout<<"catch a sig:"<<sig<<endl;
}

void showBlock(sigset_t*set)
{
    int signo=1;
    for(;signo<32;signo++)
    {
        if(sigismember(set,signo)==1)
        cout<<"1";
        else
        cout<<"0";
    }
    cout<<endl;
}
int main()
{
    sigset_t set;
    sigset_t oset;
    sigemptyset(&set);
    sigemptyset(&oset);
    sigaddset(&set,2);
    
   // signal(2,hander);
    sigprocmask(SIG_SETMASK,&set,&oset);//屏蔽信号
    int n=0;
    while(true){
        showBlock(&set);
        sleep(1);
        n++;
        if(n==10)
        {
            sigprocmask(SIG_SETMASK,&oset,&set);//屏蔽信号
        }
    }
    return 0;
}